# coding = utf-8
# @Time :2020/7/23 16:29
# @Author :Bohemian.
# @File :config.py
# @Software :PyCharm


"""

配置文件抽取
目的: 方便今后作扩展，维护，管理更加高效
操作流程：
    1 定义了config文件
    2 将Config配置类抽取到config文件中
    3 提供了3种环境下的配置类信息
    4 提供了一个config——dict的统一访问入口字典

"""
import logging
from datetime import timedelta
from redis import StrictRedis


# 设置配置信息
class Config(object):
    # 调试信息
    DEBUG = True
    SECRET_KEY = "fdfdfdfddfdfd"
    # 数据库配置信息
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@localhost:3306/info"
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # Redis配置信息
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # session配置信息
    SESSION_TYPE = "redis"  # 设置session存储类型
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 指定session存储的Redis服务器
    SESSION_USE_SIGNER = True  # 设置签名储存
    PERMANENT_SESSION_LIFETIME = timedelta(days=2)  # 设置session的有效期

    # 默认的日志级别
    LEVEL_NAME = logging.DEBUG


# 开发环境配置信息
class DevelopConfig(Config):
    DEBUG = False
    pass


# 生产（线上）环境配置信息
class ProductConfig(Config):
    LEVEL_NAME = logging.ERROR
    pass


# 测试环境配置信息
class TestConfig(Config):
    pass


# 提供一个统一的访问入口
config_dict = {
    "develop": DevelopConfig,
    "product": ProductConfig,
    "test": TestConfig
}
